Creating Transformations for Matrix Obfuscation
نویسندگان
چکیده
There are many programming situations where it would be convenient to conceal the meaning of code, or the meaning of certain variables. This can be achieved through program transformations which are grouped under the term obfuscation. Obfuscation is one of a number of techniques that can be employed to protect sensitive areas of code. This paper presents obfuscation methods for the purpose of concealing the meaning of matrices by changing the pattern of the elements. We give two separate methods: one which, through splitting a matrix, changes its size and shape, and one which, through a change of basis in a ring of polynomials, changes the values of the matrix and any patterns formed by these. Furthermore, the paper illustrates how matrices can be used in order to obfuscate a scalar value. This is an improvement on previous methods for matrix obfuscation because we will provide a range of techniques which can be used in concert. This paper considers obfuscations as data refinements. Thus we consider obfuscations at a more abstract level without worrying about implementation issues. For our obfuscations, we can construct proofs of correctness easily. We show how the refinement approach enables us to generalise and combine existing obfuscations. We then evaluate our methods by considering how our obfuscations perform under certain relevant program analysis-based attacks.
منابع مشابه
On the Effectiveness of Source Code Transformations for Binary Obfuscation
Obfuscation is gaining momentum as a protection mechanism for the intellectual property contained within or encapsulated by software. Usually, one of the following three directions is followed: source code obfuscation is achieved through source code transformations, Java bytecode obfuscation through transformations on the bytecode, and binary obfuscation through binary rewriting. In this paper,...
متن کاملTowards Testing Malware Detection Systems using Behavioral Obfuscation
Context Obfuscation consists of software transformations at the source code, intermediate representation and/or binary level, which aim to hide sensitive information available in the software application from attackers. Such sensitive information includes but is not limited to: proprietary algorithms and confidential data. Software diversity aims to decrease the applicability of attack instance...
متن کاملJava Control Flow Obfuscation
The language Java was designed to be compiled into a platform independent bytecode format. Much of the information contained in the source code remains in the bytecode, which means that decompilation is easier than with traditional native codes. As a result, software developers are taking seriously the threat of competitors using reverse-engineering to extract proprietary algorithms from compil...
متن کاملComputer Science Group THE USE OF MATRICES IN OBFUSCATION
There are many programming situations where it would be convenient to conceal the meaning of code, or the meaning of certain variables. This can be achieved through program transformations which are grouped under the term obfuscation. This paper presents obfuscation methods for the purpose of concealing the meaning of matrices by changing the pattern of the elements. We give two separate method...
متن کاملStatic Analysis of Executables to Detect Malicious Patterns
Malicious code detection is a crucial component of any defense mechanism. In this paper, we present a unique viewpoint on malicious code detection. We regard malicious code detection as an obfuscation-deobfuscation game between malicious code writers and researchers working on malicious code detection. Malicious code writers attempt to obfuscate the malicious code to subvert the malicious code ...
متن کامل